package com.gxa.pingan.mapper;

import com.gxa.pingan.pojo.City;
import com.gxa.pingan.pojo.Shop;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface ShopMapper {

    /**
     * 根据名字查询，主要是为了添加的时候判断有没有重复的名字从而抛异常
     * @param name
     * @return
     */
    List <Shop> findByName(String name);

    /**
     * 全查询,这里主要是为了给分页查询打配合，给前端返回总条数
     * @return
     */
    List<Map> findAll( Integer type);

    /**
     * 分页查询
     * @param offset
     * @param size
     * @return
     */
    List<Map> selectFindByPage(Integer offset,Integer size,Integer type);

    /**
     * 删除方法
     * @param id
     */
    void delete(Long id);

    /**
     * 添加方法
     * @param map
     */
    void add(Map map);

    /**
     * 修改方法
     * @param shop
     */
    void update(Shop shop);

    /**
     * 根据Id查询修理厂
     * @param id
     * @return
     */
     Shop findById(Long id);

    /**
     * 根据名字模糊查询，主要是为了给分页查询配合，给前端返回总条数
     * @param name
     * @param type
     * @return
     */
    List<Map> findLikeByName(String name, Integer type);

    /**
     * 根据名字模糊分页查询
     * @param name
     * @param type
     * @param offset
     * @param size
     * @return
     */
    List<Map> findLikeByNameAndPage(String name,Integer type,Integer offset,Integer size);

    /**
     * 主要是为了导出操作，全查询，模糊查询都在这里
     * @param type
     * @param name

     * @return
     */
    List<Shop> findLikeByNameAndPageOrFindAll(Integer type, @Param("name") String name);


}
